package si.banst.tecajnice.web.mbean;

import java.util.logging.Logger;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;

import si.banst.tecajnice.ejb.PonderjiBeanRemote;
import si.banst.tecajnice.ejb.napake.NapakaPriPovprasevanju;
import si.banst.tecajnice.entitete.Ponder;
import si.banst.tecajnice.entitete.StatusAktivnosti;
import si.banst.tecajnice.web.PonderDataModel;

@Named
public class VerifikacijaPonderjevMBean {
	private static final Logger logger = Logger
			.getLogger(VerifikacijaPonderjevMBean.class.getName());

	@EJB(lookup="corbaname:iiop:tecajnice.banst.si:2811#PonderjiBean")
	private PonderjiBeanRemote ponderjiBean;

	private Ponder izbranPonder;

	public VerifikacijaPonderjevMBean() {
		super();
	}

	public PonderDataModel getNeaktivniPonderji() {
		PonderDataModel neaktivniPonderji = null;
		try {
			neaktivniPonderji = new PonderDataModel(
					ponderjiBean.vrniVseNeaktivnePonderje());

			if (neaktivniPonderji == null
					|| !neaktivniPonderji.isRowAvailable())
				throw new NapakaPriPovprasevanju("Seznam ponderjev je prazen.");

		} catch (NapakaPriPovprasevanju e) {
			logger.severe("Napaka pri inicializaciji. " + e);
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR,
							"Napaka pri inicializaciji", e.getMessage()));
		}
		return neaktivniPonderji;
	}

	public void verificiraj() {
		logger.info("verificiram");
		try {
			izbranPonder.setStatusAktivnosti(StatusAktivnosti.AKTIVEN);
			izbranPonder.setReferent(FacesContext.getCurrentInstance()
					.getExternalContext().getRemoteUser());
			ponderjiBean.posodobiPonder(izbranPonder);

		} catch (Exception e) {
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR,
							"Napaka pri posodobitvi", e.getMessage()));
		}
		FacesContext.getCurrentInstance().addMessage(
				null,
				new FacesMessage(FacesMessage.SEVERITY_INFO,
						"Verifikacija uspešna. ", ""));
	}

	public Ponder getIzbranPonder() {
		return izbranPonder;
	}

	public void setIzbranPonder(Ponder izbranPonder) {
		this.izbranPonder = izbranPonder;
	}

}
